package com.sig.sigandroidDisconnected;
///**
// * 
// */
//package com.sig.sigandroid;
//
//import javax.microedition.khronos.egl.EGLConfig;
//import javax.microedition.khronos.opengles.GL10;
//
//import android.content.Context;
//import android.opengl.GLSurfaceView.Renderer;
//
///**
// * @author zou
// *
// */
//public class CarteRender implements Renderer {
//
//
//	/**
//	 * Scale listener.
//	 */
//	// private MyScaleListener scaleListener;
//
//	/**
//	 * User scale factor.
//	 */
//	private float userScale = 1;
//
//	/**
//	 * User horizontal translation.
//	 */
//	private float userDX = 0;
//
//	/**
//	 * User vertical translation.
//	 */
//	private float userDY = 0;
//
//	
//	/**
//	 * 
//	 */
//
//	private double mapX;
//
//	private double mapY;
//
//	private double mapWidth;
//
//	private double mapHeight;
//
//	/**
//	 * GPS listener.
//	 */
//	private GpsLocation locationListener;
//
//	private float ratio;
//
//	private float width;
//
//	private float height;
//
//	private float testScale;
//
//	private float scale;
//
//	public CarteRender(Context context) {
//		super();
//		// TODO Auto-generated constructor stub
//	}
//
//	/* (non-Javadoc)
//	 * @see android.opengl.GLSurfaceView.Renderer#onDrawFrame(javax.microedition.khronos.opengles.GL10)
//	 */
//	@Override
//	public void onDrawFrame(GL10 gl) {
//		gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
//		gl.glMatrixMode(GL10.GL_PROJECTION);
//		gl.glLoadIdentity();
//		gl.glOrthof(-ratio, ratio, -1, 1, 0, 1);
//		gl.glTranslatef(0, 0, -0.00001f);
//		gl.glMatrixMode(GL10.GL_MODELVIEW);
//		gl.glLoadIdentity();
//
//		gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
//		gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
//
//		// Translate.
//		float cX = (float) (locationListener.getLongitude() - mapX);
//		float cY = (float) (locationListener.getLatitude() - mapY);
//		// Scale.
//		float rW = (float) ((ratio * 2) / mapWidth);
//		float rH = (float) ((2 / mapHeight));
//		float initialScale = (float) Math.max(rW, rH);
//		scale = initialScale * userScale;
//		testScale = scale / initialScale;
//		gl.glPushMatrix();
//		//
//		gl.glTranslatef(userDX / 1000, -userDY / 1000, 0);
//		gl.glScalef(scale, scale, 1);
//		gl.glTranslatef(-(float) cX, -(float) cY, 0);
//		drawGraphics(gl);
//		gl.glPopMatrix();
//
//		gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
//		gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
//
//	}
//
//	private void drawGraphics(GL10 gl) {
//		drawBuildings(gl);
//		drawRoutes(gl);
//	}
//
//	private void drawBuildings(GL10 gl) {
//		//recupère les liste des polygones et trace pour chaque polygones
//
//		IBuildings l = sig.getGraphics().getBuildings();
//         if (l != null && !l.isEmpty()) {
//                 for (IBuilding b : l) {
//                         drawBuilding(gl, b);
//                 }
//         }
//
//	}
//
//	private void drawBuilding(GL10 gl, IBuilding building) {
//		for (ITriangles ts : building.getTriangles()) {
//			// Color depending on the type.
//			FloatBuffer color = ts.getType().getFill();
//			// Draw the triangles.
//			for (ITriangle t : ts) {
//				// Draw the triangle.
//				gl.glVertexPointer(3, GL10.GL_FLOAT, 0, t.getVertexBuffer());
//				gl.glColorPointer(4, GL10.GL_FLOAT, 0, color);
//				gl.glDrawElements(GL10.GL_TRIANGLES, 3, GL10.GL_UNSIGNED_SHORT,
//						t.getIndexBuffer());
//			}
//		}
//	}
//	
//	private void drawRoutes(GL10 gl) {
//		IRoutes l = sig.getGraphics().getRoutes();
//		if (l != null && !l.isEmpty()) {
//			for (IRoute r : l) {
//				drawRoute(gl, r);
//			}
//		}
//	}
//	
//	private void drawRoute(GL10 gl, IRoute route) {
//		RouteType type = route.getType();
//		gl.glPushMatrix();
//		IPoint from = route.getFrom();
//		gl.glTranslatef((float) from.getRelativeLongitude(),
//				(float) from.getRelativeLatitude(), 0);
//		gl.glRotatef(route.getAngle(), 0, 0, 1);
//		gl.glVertexPointer(3, GL10.GL_FLOAT, 0, route.getFillVertexBuffer());
//		gl.glColorPointer(4, GL10.GL_FLOAT, 0, type.getFill());
//		gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT,
//				route.getIndexBuffer());
//		gl.glVertexPointer(3, GL10.GL_FLOAT, 0, route.getStrokeVertexBuffer());
//		gl.glColorPointer(4, GL10.GL_FLOAT, 0, type.getStroke());
//		gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT,
//				route.getIndexBuffer());
//		gl.glPopMatrix();
//		
//	}
//	
//	
//
//	
//	@Override
//	public void onSurfaceChanged(GL10 gl, int width, int height) {
//		this.width = width;
//        this.height = height;
//        gl.glViewport(0, 0, width, height);
//        ratio = (float) width / height;
//        gl.glMatrixMode(GL10.GL_PROJECTION);
//        gl.glLoadIdentity();
//        gl.glOrthof(-ratio, ratio, -1, 1, 0, 1);
//
//	}
//
//	
//	@Override
//	public void onSurfaceCreated(GL10 arg0, EGLConfig arg1) {
//		gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
//        gl.glClearColor(Sig1337.BACKGROUND_RED, Sig1337.BACKGROUND_GREEN,
//                        Sig1337.BACKGROUND_BLUE, 1);
//        gl.glEnable(GL10.GL_DEPTH_TEST);
//
//	}
//
//
//
//}
